package com.atguigu.gmall.payment.service;

import com.atguigu.gmall.payment.model.PaymentInfo;

import java.util.Map;

public interface AlipayService {

    /**
     * 调用支付宝接口生成支付表单
     * @param userId
     * @param orderId
     * @return
     */
    String createAlipayForm(String userId, Long orderId);

    /**
     * 处理支付宝异步回调（支付宝通知支付系统告知用户支付结果）
     * @param mapParam
     * @return
     */
    String notifyPaySuccess(Map mapParam);

    /**
     * 进行支付宝退款业务处理
     * @param outTradeNo
     */
    void refund(String outTradeNo);

    /**
     * 获取支付宝交易状态
     * @param paymentInfo
     * @return
     */
    String getAliPayTradeSatus(PaymentInfo paymentInfo);

    /**
     * 关闭支付宝交易
     * @param paymentInfo
     */
    void closeAlipayTrade(PaymentInfo paymentInfo);
}
